Touchless and touch optimized processing of retail and other commerce transactions

ABSTRACT

A computer implemented method for reducing input performed in a commerce based application is provided. The method includes receiving a sequence of input values from an input device and associating the sequence of input values with an object in the application based on the sequence. A context of the application is determined. One or more tasks in the application are automatically performed based on the object, the context and the sequence of input values.

BACKGROUND OF THE INVENTION

The present invention relates to processing data from an input device.In particular, the present invention relates to performing tasks in acommerce application based on input data.

There are a number of different input devices that communicate with acomputer. For example, retail input devices can include a keyboard formanual input, a barcode scanner for scanning barcodes and a magneticstripe reader for reading a magnetic stripe on a credit card.Additionally, pointer devices, touch screens and other devices can beused. A commerce based application such as a retail software applicationrunning on the computer uses input data from these devices for a numberof different tasks, for example to process a transaction.

Typically, software applications require a prompt or other indication ofa particular input that the software application can expect. Thisprompting requires additional tasks to be performed by a user.Typically, the prompting is provided by a form of “touch” input device,where a user has to physically touch the device, such as a mouse,keyboard or touch screen. These additional input operations lead toincreased time in processing a transaction, mistakes and training costs.For example, in a simple one-item transaction, a user will need toprompt the application to expect input related to one or more items forpurchase, expect input related to customer information and expect inputrelated to a tender used for the transaction. Thus, there is a need toprovide an efficient manner for performing tasks based on input from aninput device.

SUMMARY OF THE INVENTION

A computer implemented method for reducing input performed in a commercebased application is provided. The method includes receiving a sequenceof input values from an input device and associating the sequence ofinput values with an object in the application based on the sequence. Acontext of the application is determined. One or more tasks in theapplication are automatically performed based on the object, the contextand the sequence of input values.

Another aspect of the present invention relates to a commerce basedsystem having a computer with memory and at least one input port. Aplurality of input devices are operably coupled to the at least oneinput port to send a sequence of input values to the input port. Acommerce based application program is stored on the memory and operablycoupled to the at least one input port to receive a particular sequenceof input values from one of the plurality of input devices. Theapplication program includes an application context module defining acontext of the application program and a transaction processing moduleoperably coupled to the application context module. The transactionprocessing module is adapted to receive the particular sequence,associate the particular sequence with an object based on the sequenceand perform one or more tasks based on the object, the particularsequence and the context of the application program.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a general computing environment in whichthe present invention can be useful.

FIG. 2 is a block diagram of a plurality of input devices providinginput to a computer.

FIG. 3 is a flow diagram of a method for processing input from an inputdevice.

FIG. 4 is a block diagram of a retail application that receives inputfrom an external device.

FIGS. 5-9 are screen shots of a retail application that illustratestasks performed based on input from an input device.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Prior to discussing the present invention in greater detail, oneembodiment of an illustrative environment which the present inventioncan be used will be discussed. FIG. 1 illustrates an example of asuitable computing system environment 100 on which the invention may beimplemented. The computing system environment 100 is only one example ofa suitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the computing environment 100 be interpreted as havingany dependency or requirement relating to any one or combination ofcomponents illustrated in the exemplary operating environment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with the invention include,but are not limited to, personal computers, server computers, hand-heldor laptop devices, multiprocessor systems, microprocessor-based systems,set top boxes, programmable consumer electronics, network PCs,minicomputers, mainframe computers, distributed computing environmentsthat include any of the above systems or devices, and the like.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices. Tasks performedby the programs and modules are described below and with the aid offigures. Those skilled in the art can implement the description andfigures as processor executable instructions, which can be written onany form of a computer readable medium.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of acomputer 110. Components of computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

Computer 110 typically includes a variety of computer readable media.Computer readable media can be any available medium or media that can beaccessed by computer 110 and includes both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by computer 110. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of any of the aboveshould also be included within the scope of computer readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removablevolatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies.

A user may enter commands and information into the computer 110 throughinput devices such as a keyboard 162, a microphone 163, and a pointingdevice 161, such as a mouse, trackball or touch pad. Other input devices(not shown) may include a joystick, game pad, satellite dish, scanner,or the like. These and other input devices are often connected to theprocessing unit 120 through a user input interface 160 that is coupledto the system bus, but may be connected by other interface and busstructures, such as a parallel port, game port or a universal serial bus(USB). A monitor 191 or other type of display device is also connectedto the system bus 121 via an interface, such as a video interface 190.In addition to the monitor, computers may also include other peripheraloutput devices such as speakers 197 and printer 196, which may beconnected through an output peripheral interface 195.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a hand-helddevice, a server, a router, a network PC, a peer device or other commonnetwork node, and typically includes many or all of the elementsdescribed above relative to the computer 110. The logical connectionsdepicted in FIG. 1 include a local area network (LAN) 171 and a widearea network (WAN) 173, but may also include other networks. Suchnetworking environments are commonplace in offices, enterprise-widecomputer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user-inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on remote computer 180. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

FIG. 2 illustrates an environment wherein a plurality of input devicescommunicate with a computer 200, an example of which is described abovewith respect to FIG. 1. Computer 200 includes at least one application202 and an input device handler 204. A plurality of input devicesincluding a keyboard and/or a touch screen 212, a barcode scanner 214, amagnetic stripe reader 216 and a RF identification receiver 218communicate through at least one port 220 to computer 200. Asappreciated by those skilled in the art, other input devices, such as amagnetic ink character recognition (MICR) reader, may also be used inaccordance with the present invention and multiple input devices canshare a common form factor and/or input conduit.

Keyboard/touch screen 212 receives manual input from a user, barcodescanner 214 scans a barcode, magnetic stripe reader 216 reads a magneticstripe of a magnetic card and RF identification receiver 218 receivesradio frequency signals that are sent to port 220. In accordance withthe present invention, multiple ports similar to port 220 that areoperably coupled to separate input devices can also be used. Each of themultiple ports can provide information received from a respective inputdevice to input device handler module 204.

Input device handler 204 receives input from the plurality of devicesthrough at least one port 220 and sends the input to application 202. Inan exemplary embodiment, the input includes a sequence of input valuesthat relate to various information, such as a customer name, a productidentification number and a credit card account number. Application 202detects the input and automatically performs tasks based on the input.The tasks are also based on a particular context for the application. Inaccordance with an embodiment of the present invention, usingapplication 200, the need for use of keyboard/touch screen 212 can bereduced and in some cases eliminated during processing of a transaction.For example, a cashier need only use a scan, scan and swipe tocompletely process a transaction. Thus, operation of other input devicesthat use touching is minimized.

FIG. 3 is an exemplary method for processing input from an input devicein a commerce application. As discussed below, the input is processedbased on program heuristics to predict a logical flow for the input. Atstep 252, input from the input device is detected. For example, inputdevice handler 204 can detect input from any of the input devicesdescribed above. At step 254 a source and content of the input isdetermined. In one embodiment, the source and content of the input canbe determined in a manner described in U.S. application Ser. No.10/740,936, filed Dec. 19, 2003, entitled AUTOMATED INPUT DETERMINATION,the contents of which are hereby incorporated by reference in itsentirety. For example, if a sequence of sixteen input values isreceived, the sequence can indicate that a magnetic stripe readerprovided the input. Other methods of determining the source and contentcan be used. The sequence is associated with an object in theapplication based on the content and/or the source of the sequence atstep 255. Exemplary objects for a commerce application include a retailitem, a customer, a tender, an order a shipping notice, etc. The contextof an associated application is determined at step 256. The context canbe related to one or more aspects of the application, for example aparticular mode for the application, a location, a user, etc.

At step 258, one or more tasks (or actions) are automatically performedbased on the object, the context and the input. For example, these taskscan include a comparison of the input with an inventory list, a customerlist and/or a receipt list. Further tasks can additionally be performed,such as calculation of sales tax, requesting approval for a credit cardtransaction and/or presenting multiple options to a user. In someinstances, the context of the application is switched based on theinput. For example, the context can be switched from an initial mode toa sales transaction made or a return void mode. The tasks that areperformed are determined from heuristics based on a logical flow for theapplication based on the input.

FIG. 4 is a block diagram of an exemplary commerce application 300 foruse with the present invention. Commerce application 300 includes anapplication context 302 and a transaction processing module 304. Anexternal device 306, which can be any of the input devices discussedabove, provides input to application 300, which is then sent totransaction processing module 304.

Transaction module 304 is based on program heuristics designed toreduce, and in some cases eliminate, input from a user of devices suchas a mouse and/or a keyboard. Based on the input of external device 306,transaction processing module 304 associates the input with an objectand utilizes a plurality of actions, herein shown as actions 1-N,depending on application context 302. The object can be an object asdiscussed above. Application context 302 includes a user context 308,location context 310 and object context 312. Other context associatedwith application context 302 can also be used.

User context 308 includes default behavior actions based on a particularuser for application 300. For example, the user may be an owner, amanager, a cashier, etc. Each of these user contexts can have varyingattributes, roles and permissions. For example, retail application 300can be designed such that only a manager or owner can void atransaction. Location context 310 is based on the location of retailapplication 300. For example, the location could be at a point of sale,a back office setting, a warehouse, etc. Location context 310 thusincludes default behavior actions based on the location. In a point ofsale context, scanning an item can populate a retail transaction withthe item's details. Object context 312 identifies various objects, suchas items, customers, tenders, transactions, receipts, etc. Transactionmodule 304 associates the input with one or more of these objects.Object context 312 includes default behavior actions based on usercontext 308, location context 310 and the one or more objects.

Given the application context 302, which includes user context 308,location context 310 and object context 312, transaction processingmodule 304 selects one or more actions based on the context and theinput from external device 306. For example, one action can be relatedto adding a customer to a transaction based on a customer scan of acustomer ID card. Another action can be related to adding an item to atransaction based on a bar code scan of an item's bar code. Yet anotheraction can be based on tendering an amount to a credit card based on acard swipe from a magnetic stripe reader.

Thus, in a store or other environment having bar coded inventory withcustomer cards and electronic credit or debit processing, a salescashier can complete a sales transaction without accessing input devicessuch as keyboards, pointer devices and/or touch panels. Instead, atransaction is completed with only a scan of an item, a scan of acustomer card and a swipe of the credit card. The transaction processingmodule 204, based on heuristics, compares the first scan to an inventorylist and adds an item to the transaction, the second scan adds acustomer to the transaction and the credit card swipe tenders the creditcard to the transaction and prints out a receipt.

FIGS. 5-9 are exemplary screen shots that illustrate tasks performed bya retail application based on input from an input device and a contextof the retail application. The retail application is at a point of salelocation. Heuristics can help to predict a logical flow for the retailapplication based on the input. For example, if a credit card is swipedafter items are entered in a transaction, the credit card is most likelythe tender for the transaction. It will be appreciated that the presentinvention can be implemented in other environments and/or locations, forexample in back office settings and shipping warehouses.

FIGS. 5-7 are screen shots for a single sales transaction. In FIG. 5, auser has scanned a bar code for an item. Input can also be provided froman RF identification receiver. The retail application determines thesource and the content of the input as discussed above. Based on thesource and content of the input, the input is associated with one ormore objects. The input here is associated with an inventory item. Acontext of the retail application is also determined. In this case, thecontext is an initial mode. Based on the one or more objects, thecontext and the input, tasks are performed in the retail application.For the bar code scan, a comparison of the input is made with inventorydata, a customer list and/or a receipt list. As shown in FIG. 5, theretail application has located and matched the input with item number25000-010202. This item, along with any other information, isautomatically added to a sales transaction and a subtotal and tax forthe transaction are calculated. Furthermore the context of the retailapplication is updated to a sales transaction mode. In the salestransaction mode, further items that are scanned are automatically addedto the transaction.

FIG. 6 is a screen shot wherein a customer barcode has been scanned. Theinput is detected and associated with one or more objects. The contextof the application, herein the sales transaction mode, is alsodetermined. In this case, the input is compared to a database andmatches a customer's information. This customer information isautomatically added to the transaction. In FIG. 7, a user has swiped acredit card using a magnetic stripe reader. The credit card informationis associated with a tender for the application. Since the retailapplication is still in the sales transaction mode, the tasks to beperformed include posting the transaction, tendering a sale amount tothe credit card, printing a sales receipt and opening a cash drawer. Asa result, a full transaction can be processed in the application usingonly the bar code scanner and the magnetic stripe reader. A user hasonly needed to scan an item, scan a customer card and swipe a creditcard. Thus, no manual input, for example, using a keyboard, pointerdevice and/or a touch panel is necessary from the user.

FIG. 8 is a screen shot for processing input in a retail application. Inthis case, a user has scanned an item and the input has been detected aswell as the context been determined. The input has matched multipleitems from a data source associated with the retail application. Theinput has matched an item (Softball Book) and a customer (John, Smith).Both of these options are presented to the user in order for the user toquickly select either option and continue with the transaction. Forexample, if the user scanned the item (Softball Book), the user caneasily select the softball book to be put into the transaction.

FIG. 9 is a screen shot wherein a user has scanned in a sales receipt,for example by using a bar code scanner. Automatically, the salesreceipt appears in a window of the retail application and variousoptions are presented to the user. The retail application is alsoupdated to a return void mode. Accordingly, if sale items are scannedand matched to an item in the sales receipt, a return void transactionwill begin.

Using the present invention discussed above, input from an input devicecan be automatically processed in order to reduce input required by auser. The tasks that are automatically performed by an application canbe based on heuristics that predict an intended action of the user. Forexample, given a retail point of sale context, scanning an item willautomatically populate a retail transaction with the item's detail, suchas a description, an item number and an amount. Further input canproduce additional processing tasks for the retail application. Asdiscussed above, the present invention can also be extended to otherinputs, input devices and/or contexts. For example, in a warehousesetting, a scanned item provided from an RF device can automaticallyenter an application into a shipping mode and print and send a shippingnotice.

Although the present invention has been described with reference topreferred embodiments, workers skilled in the art will recognize thatchanges may be made in form and detail without departing from the spiritand scope of the invention.

1. A computer implemented method for reducing input performed in acommerce based application, the method comprising: receiving a sequenceof input values from a source user input device; associating thesequence of input values with an object in the commerce basedapplication based on the sequence of input values and the source userinput device from which the sequence of input values is received;determining a context of the commerce based application using acomputer, wherein the context includes a location context that is basedon a particular location in a stream of commerce in which the commercebased application is deployed, the particular location being one of aplurality of different locations in the stream of commerce, wherein theplurality of different locations in the stream of commerce comprise atleast one point of sale location in the stream of commerce and at leastone non-point of sale location in the stream of commerce, whereinfunctions performed in the stream of commerce at the at least one pointof sale location comprise different types of functions than functionsperformed in the stream of commerce at the at least one non-point ofsale location, the location context including default behavior actionsthat perform default functions within the stream of commerce at theparticular location; and automatically performing one or more tasks inthe commerce based application based on the object, the context, thesource user input device and the sequence of input values.
 2. The methodof claim 1 and further comprising: switching the context of the commercebased application based on the sequence of input values.
 3. The methodof claim 2 and further comprising: receiving a second sequence of inputvalues; associating the second sequence of input values with a secondobject based on the second sequence; and automatically performing one ormore tasks in the commerce based application based on the second object,the second sequence and the context of the commerce based application.4. The method of claim 1 wherein the commerce based application is aretail application.
 5. The method of claim 4 wherein the object is anitem for purchase and the one or more tasks include populating atransaction in the retail application with the item and calculating anamount for the transaction.
 6. The method of claim 5 and furthercomprising: receiving a second sequence of input values related to acredit card number; and associating the credit card number with a tenderobject for the transaction.
 7. The method of claim 6 and furthercomprising: verifying the credit card number; and printing a receipt forthe transaction.
 8. The method of claim 4 wherein the object is an itemand the context is switched to a sales transaction mode.
 9. The methodof claim 1 wherein the object is a receipt and the context is switchedto a return void mode.
 10. The method of claim 1 wherein the objectincludes information related to at least one of an item, a customeridentification, a tender, a transaction and a receipt.
 11. The method ofclaim 1 wherein the context relates to at least one of a user, and anobject of the application.
 12. The method of claim 1 wherein an entiretransaction of identifying products to be purchased, identifying acustomer, identifying a credit card to be charged, posting a sale,tendering a sale to a credit card, printing a sales receipt and openinga cash drawer is completed within the commerce based application usingthe sequence of input values, wherein the sequence of input values isreceived from only input devices comprising a bar code scanner and amagnetic stripe reader.
 13. The method of claim 1, wherein the at leastone non-point of sale location within the stream of commerce comprisesat least one of a back office setting and a warehouse location.
 14. Acommerce based system comprising: a computer having memory and at leastone input port; a plurality of user input devices operably coupled tothe at least one input port to send a sequence of input values to theinput port; and a commerce based application program stored on thememory and configured to be deployed in a plurality of differentlocations within a stream of commerce, wherein the plurality ofdifferent locations within the stream of commerce comprise at least onenon-point of sale location within the stream of commerce, whereindifferent functions performed within the stream of commerce areperformed at each of the plurality of different locations, and thecommerce based application being operably coupled to the at least oneinput port to receive a particular sequence of input values from one ofthe plurality of user input devices, the commerce based applicationprogram including: an application context module defining a context ofthe commerce based application program, the context including a locationcontext that is based on a particular location within the stream ofcommerce in which the application is deployed, the particular locationbeing one of the plurality of different locations within the stream ofcommerce, the location context including default behavior actions thatperform default functions at the location in the stream of commerce; atransaction processing module operably coupled to the applicationcontext module and adapted to receive the particular sequence, associatethe particular sequence with an object based on the particular sequenceand perform one or more tasks based on the object, the particularsequence and the context of the commerce based application program; andwherein the plurality of user input devices include a bar code scannerand a magnetic stripe reader and wherein a transaction comprisingidentifying products to be purchased, identifying a customer,identifying a credit card to be charged, posting a sale, tendering asale to a credit card, printing a sales receipt and opening a cashdrawer is completed within the commerce based application using thesequence of input values, wherein the sequence of input values isreceived from only input devices comprising a bar code scanner and amagnetic stripe reader.
 15. The system of claim 14 wherein theapplication context module is adapted to switch the context based on theparticular sequence.
 16. The system of claim 15 wherein the transactionprocessing module is further adapted to receive a second particularsequence of input values from one of the plurality of input devices,associate the second particular sequence with a second object andautomatically perform one or more tasks in the commerce basedapplication program based on the object, the second particular sequenceand the context.
 17. The system of claim 14 and further comprising adata source operably coupled to the computer and wherein the transactionprocessing module is adapted to compare the particular sequence to thedata source.
 18. The system of claim 14 wherein the object is an itemfor purchase and the transaction processing module is adapted topopulate a transaction in the commerce based application program withthe item and calculate an amount for the transaction.
 19. The system ofclaim 14 wherein the object includes information related to at least oneof an item, a customer identification, a tender, a transaction and areceipt.
 20. The system of claim 14, wherein the plurality of differentlocations in the stream of commerce comprise at least one point of salelocation within the stream of commerce, and wherein the at least onenon-point of sale location within the stream of commerce comprises atleast one of a back office setting and a warehouse location.